package com.kinghood.productcenter.manager;

import com.kinghood.infrastructure.model.KingHoodResponseVO;
import com.kinghood.productcenter.common.model.dto.base.ListProductQueryDTO;
import com.kinghood.productcenter.common.model.dto.product.GetProductReqDTO;
import com.kinghood.productcenter.common.model.vo.product.ProductDetailVO;
import com.kinghood.productcenter.common.model.vo.product.ProductInfoVO;
import com.kinghood.sharding.model.PageResponseVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * description
 *
 * @author zhangFanJun
 * @date 2023-12-26 10:32
 **/
public interface IProductBaseManager {

    /**
     * 产品列表
     *
     * @param param 参数
     * @return @return {@link PageResponseVO }
     * @author jp
     * @date 2024/01/12 15:00
     */
    PageResponseVO listProduct(ListProductQueryDTO param);

    /**
     * 商品详情
     *
     * @param id 商品id
     * @return 商品信息
     * @author zfj
     * @date 2023/12/25
     */
    ProductDetailVO getProduct(GetProductReqDTO id);

    /**
     * 导出产品
     *
     * @param param    参数
     * @param response 回答
     * @author jp
     * @date 2023/12/26
     */
    void exportProduct(ListProductQueryDTO param, HttpServletResponse response);

    /**
     * excel导入
     *
     * @param file     文件
     * @param response 响应
     * @author zfj
     * @date 2023/12/25
     */
    void uploadProduct(MultipartFile file, HttpServletResponse response);

    /**
     * 上传产品图片
     *
     * @param file     文件
     * @param response 回答
     * @author jp
     * @date 2023/12/28
     */
    void uploadProductPicture(MultipartFile file, String type, HttpServletResponse response);

    /**
     * 导入数据回显
     *
     * @param file     文件
     * @return 数据
     * @author zfj
     * @date 2023/12/25
     */
    List<Map<String, String>> importData(MultipartFile file);

    /**
     * 导出图片
     *
     * @param param 参数
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/25 15:29
     */
    KingHoodResponseVO exportProductPicture(ListProductQueryDTO param);
}
